package main

import (
	"fmt"
	"github.com/valyala/fasthttp"
	"google.golang.org/protobuf/proto"
	"net/http"
	pb "t_proto/protos/proto"
)

func ptoPost(){
	url := `http://127.0.0.1:8080/post/pto`

	req := &fasthttp.Request{} //相当于获取一个对象

	req.SetRequestURI(url) //设置请求的url
	data:=&pb.Req{ // todo proto 参数
		Text: "我叫小可爱",
		Index: 123,
	}

	bytes, err :=proto.Marshal(data)// todo proto 参数序列化
	if err != nil {
		return
	}

	req.SetBody(bytes) //存储转换好的数据

	//req.Header.SetContentType("application/json") //设置header头信息

	req.Header.SetMethod(http.MethodPost) //设置请求方法

	resp := &fasthttp.Response{} //相应结果的对象

	client := &fasthttp.Client{} //发起请求的对象

	if err := client.Do(req, resp); err != nil { // 发起 http 请求
		fmt.Println(err,"123123123123")
		return
	}

	ressp:=&pb.Resp{} // todo proto 格式返回值

	err=proto.Unmarshal(resp.Body(),ressp) // todo proto 反序列化返回值
	if err!=nil{
		fmt.Println("返回值解析错误：",err)
	}

	fmt.Printf("客户端接收到的返回值：%+v \n",ressp)
}
